package com.atguigu.acl.service;

import com.atguigu.acl.dto.MenuNode;
import com.atguigu.acl.entity.Menu;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author smday
 * @since 2020-08-10
 */
public interface MenuService extends IService<Menu> {

    /**
     * 获取指定用户的menu
     */
    List<Menu> getMenuList(Long adminId);

    /**
     * 创建后台菜单
     */
    int create(Menu menu);

    /**
     * 修改后台菜单
     */
    int update(Long id, Menu menu);

    /**
     * 根据ID获取菜单详情
     */
    Menu getItem(Long id);

    /**
     * 根据ID删除菜单
     */
    int delete(Long id);

    /**
     * 分页查询后台菜单
     */
    Map<String,Object> list(Long parentId, Integer pageSize, Integer pageNum);

    /**
     * 树形结构返回所有菜单列表
     */
    List<MenuNode> treeList();

    /**
     * 修改菜单显示状态
     */
    int updateHidden(Long id, Integer hidden);
}
